C语言用"for"怎么算1~20!阶乘之和啊?

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:01:58
同上~

回答的都很好~

我给一种:

main
{
#define NUM 20
int i,j;
int total=0;//记录总和
int n=1;//记录当前的阶乘值

for(i=1;i<=NUM;i++)
{
n=n*i;//当前的阶乘值

total=total+n;//总和
}
}

我知道的方法有3种
1.两重for 循环
double mid,sum=0;//一定要double型的
int n,m;
for(n=1;n<=20;n++)
{
mid=1;
for(m=1;m<=n;m++)
mid*=m;
sum+=mid;
}

2.用全局变量+for循环
double a=1.0;/*在main()之外声明*/
main()
{
int n;
double sum=0.0;
for(n=1;n<=20;n++)
{
a*=n;
sum+=a;
}

3.递归

#include"stdio.h"
main()
{ int sum=0,tum=1,i;
for(i=1;i<=20;i++)
{tum=tum*i;
sum=sum+tum;
}
printf("1~20!阶乘之和sum=%d\n",sum);
}